package com.zhoug.demo.viewpermission;

import java.util.List;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/**
 * @author: zhoug
 * @since: 2025-06-12
 */
public interface TreeProvider<T> {
    /**
     * 唯一id
     * @return
     */
    @NonNull String getId(T data);

    /**
     * 父节点id
     * @return null或者空字符串表示没有根节点
     */
    @Nullable
    String getParentId(T data);

    /**
     * 设置子节点
     * @param children
     */
    void setChildren(T parent,List<T> children);
    /**
     * 子节点集合
     * @return
     */
    @Nullable List<T> getChildren(T data);
}
